/*
 * @Description: 
  1.定义一个延迟执行的方法，如果在延迟时间内再调用该方法，则重新计算执行时间。
  2.将事件绑定在 click 方法上
  <template>
  <button v-debounce="debounceClick">防抖</button>
  </template>
 *  
 * @Date: 2021-03-09 11:04:07
 */
const debounce = {
  inserted: function (el, binding) {
    let timer
    el.addEventListener('click', () => {
      if (timer) {
        clearTimeout(timer)
      }
      timer = setTimeout(() => {
        binding.value()
      }, 300)
    })
  },
}

export default debounce